package com.hpdf.filter;



import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;
@Aspect
public class BizExceptionFilter  {
	//com.hpdf.service.impl.DomeServiceImpl
	 //在com.zteits任何子包下，以DaoImpl结尾类名中任何的方法进行切入
     
	 @Around("execution(* com.hpdf.service.impl.*.*(..))")
    public Object processTx(ProceedingJoinPoint jp)  
        throws java.lang.Throwable  
    {  
        System.out.println("执行目标方法之前，模拟开始事务...");  
        // 获取目标方法原始的调用参数  
        Object[] args = jp.getArgs();  
        if(args != null && args.length > 1)  
        {  
            // 修改目标方法的第一个参数  
            args[0] = "【增加的前缀】" + args[0];  
        }  
        // 以改变后的参数去执行目标方法，并保存目标方法执行后的返回值  
        Object rvt = jp.proceed(args);  
        System.out.println("执行目标方法之后，模拟结束事务...");  
        // 如果rvt的类型是Integer，将rvt改为它的平方  
        if(rvt != null && rvt instanceof Integer)  
            rvt = (Integer)rvt * (Integer)rvt;  
        return rvt;  
    }  


}
